Anaconda安装Tensorflow报错UnicodeDecodeError: 'utf-8' codec can't decode ## invalid start byte的问题之解决
转载请注明出处:http://blog.csdn.net/apply51/article/details/79516002
本人在使用Anaconda prompt通过命令:
pip install --ignore-installed --upgrade tensorflow
安装tensorflow时报错:
Building wheels for collected packages: absl-py, gast, termcolor, html5lib
Running setup.py bdist_wheel for absl-py ... error
Failed building wheel for absl-py
Running setup.py clean for absl-py
Running setup.py bdist_wheel for gast ... error
Failed building wheel for gast
Running setup.py clean for gast
Running setup.py bdist_wheel for termcolor ... error
Failed building wheel for termcolor
Running setup.py clean for termcolor
Running setup.py bdist_wheel for html5lib ... error
Failed building wheel for html5lib
Running setup.py clean for html5lib
Failed to build absl-py gast termcolor html5lib
Installing collected packages: numpy, setuptools, six, protobuf, grpcio, werkzeug, markdown, wheel, html5lib, bleach, tensorboard, absl-py, astor, gast, termcolor, tensorflow
Running setup.py install for html5lib ... error
Exception:
Traceback (most recent call last):
File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\compat\__init__.py", line 73, in console_to_str
return s.decode(sys.__stdout__.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45: invalid start byte
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\basecommand.py", line 215, in main
status = self.run(options, args)
File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\commands\install.py", line 342, in run
prefix=options.prefix_path,
File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\req\req_set.py", line 784, in install
**kwargs
File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\req\req_install.py", line 878, in install
spinner=spinner,
File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess
line = console_to_str(proc.stdout.readline())
File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str
return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45: invalid start byte
找了一大片的解决方案,有使用 Notepad++改编码格式的,也有添加三条代码的:
sys.getdefaultencoding() != 'gbk':
reload(sys)
sys.setdefaultencoding('gbk')
都不能解决我的问题,最后的解决办法是,根据最后的报错提示行:
File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str
return s.decode('utf_8')
找到__init__.py,使用Notepad++打开,将提示的第75行进行更改:
return s.decode(sys.__stdout__.encoding)
应改为
return s.decode('cp936')
更改__init__.py时记得备份一下,以备以后需要使用到原版。
折腾了一天,问题终于解决,开心并记录之。
不要迷恋哥,哥只是一段代码。